//对EasyUI的各种封装

//右击表格取得的对象
var clickData = null;
var addDlg = null;
var addForm = null;
var coursesCbg = null;
var clazzsCbg = null;

$(function() {

	// 初始化表格
	var dgHeight = $(window.parent.document).find('#wg_main').height();
	var dgWidth = $(window.parent.document).find('#wg_main').width();

	// 数据表格
	$('#xdatagrid')
			.datagrid(
					{
						height : dgHeight,
						width : dgWidth,
						title : dgTitle,
						columns : dgColumns,
						url : dgDateUrl,
						idField : dgIdField,
						queryParams : dgParams,
						sortName : dgSortName,
						sortOrder : dgSortOrder,
						fitColumns : false,
						remoteSort : true,
						nowrap : false,// false自动换行
						autoRowHeight : true, // 自动行高
						remoteSort : true,// 是否从服务器给数据排序
						striped : true,
						singleSelect : true,
						rownumbers : true,
						pagination : true,// 分页控件
						pageSize : 15,// 每页显示的记录条数，默认为10
						pageList : [ 10, 15, 20, 30 ],// 可以设置每页记录条数的列表
						toolbar : "#xtoolbar",
						onLoadSuccess : function(data) {// 读取成功后调用
							// 单选框特殊处理
							$(".xid").bind('click', function(event) {
								event.stopPropagation();
							});
						},
						onLoadError : function() {
							$.messager.alert(dgTitle, '未知异常,请联系管理员');
						},
						onRowContextMenu : function(e, rowIndex, rowData) {
							e.preventDefault();
							clickData = rowData;
							$('#xClickMenu').menu('show', {
								left : e.pageX - 5,
								top : e.pageY - 5
							});
						},
						onSelect : function(rowIndex, rowData) {
							var obj = "input[value='" + rowData.id + "']";
							if ($(obj).prop("checked")) {
								$(obj).prop("checked", false);
							} else {
								$(obj).prop("checked", true);
							}
						},
						// datagrid 创建子网络
						view : detailview,
						detailFormatter : function(index, row) {
							return '<div style="padding:2px"><table class="ddv"></table></div>';
						},
						onExpandRow : function(index, row) {
							var ddv = $(this).datagrid('getRowDetail', index)
									.find('table.ddv');
							ddv.datagrid({
								url : 'admin/schedule_getClazzs?id=' + row.id,
								fitColumns : true,
								singleSelect : true,
								rownumbers : true,
								loadMsg : '',
								height : 'auto',
								columns : [ [ {
									field : 'fullName',
									title : '上课班级',
									width : 100
								} ] ],
								onResize : function() {
									$('#xdatagrid').datagrid(
											'fixDetailRowHeight', index);
								},
								onLoadSuccess : function() {
									setTimeout(function() {
										$('#xdatagrid').datagrid(
												'fixDetailRowHeight', index);
									}, 0);
								}
							});
							$('#xdatagrid').datagrid('fixDetailRowHeight',
									index);
						}
					});

	/*
	 * tanjianxin 2014-10-19
	 */
	// 新增添加对话框
	addDlg = $('#addDlg').dialog({
		title : "添加数据",
		top : 80,
		buttons : [ {
			text : '添加',
			iconCls : 'icon-ok',
			handler : function() {
				$('#addForm').submit();
			}
		}, {
			text : '关闭',
			iconCls : 'icon-cancel',
			handler : function() {
				addDlg.dialog('close');
			}
		} ],
		iconCls : 'icon-save',
		resizable : false,
		modal : true,
	}).dialog('close');

	// 初始化添加表单
	addForm = $('#addForm').form({
		url : dgAddUrl,
		beforeSubmit : function() {
			$.messager.progress({
				title : dgTitle,
				msg : "提交数据中"
			});
		},
		success : function(json) {
			// json字符串转换为json对象
			json = eval('(' + json + ')');
			if (json.result != "success") {
				$.messager.alert(dgTitle, json.data);
				return;
			} else {
				addDlg.dialog('close');
				$('#xdatagrid').datagrid('load');
			}
		},
		error : function(xmlHttp) {
			$.messager.progress('close');
			$.messager.alert(dgTitle, '登录超时,请重新登录');
			document.write(xmlHttp.responseText);
		}
	});

	// 添加时加载课程信息
	coursesCbg = $('#coursesCbg').combogrid({
		editable : false,
		panelWidth : 200,
		idField : 'id',
		textField : 'name',
		columns : [ [ {
			field : 'name',
			title : '课程',
			width : 130
		} ] ],
		fitColumns : true
	});
	// 添加时加载班级信息
	clazzsCbg = $('#clazzsCbg').combogrid({
		editable : false,
		multiple : true,
		panelWidth : 200,
		idField : 'id',
		textField : 'fullName',
		columns : [ [ {
			field : 'fullName',
			title : '班级',
			width : 80
		} ] ],
		fitColumns : true
	});

	// 初始化编辑栏
	$("#editDlg").dialog({
		title : dgTitle,
		top : 80,
		close : true,
		buttons : "#editButtons",
		iconCls : 'icon-save',
		resizable : false,
		modal : true
	}).dialog('close');

	// 初始化编辑表单
	$('#editForm').form({
		url : dgUpdateUrl,
		beforeSubmit : function() {
			$.messager.progress({
				title : dgTitle,
				msg : "提交数据中"
			});
		},
		success : function(json) {
			// json字符串转换为json对象
			json = eval('(' + json + ')');
			if (json.result != "success") {
				$.messager.alert(dgTitle, json.data);
				return;
			} else {
				$("#editDlg").dialog('close');
				$('#xdatagrid').datagrid('load');
			}
		},
		error : function(xmlHttp) {
			$.messager.progress('close');
			$.messager.alert(dgTitle, '登录超时,请重新登录');
			document.write(xmlHttp.responseText);
		}
	});

});

function doSearch(value, name) {
	alert('抱歉，此模块暂不提供此功能');
}

// 日期搜索框
function searchByDate() {
	var v = $('#dd').datebox('getValue');
	if (v != "") {
		dgParams.search = v;
		dgParams.searchTitle = "clazzTime";
		$("#xdatagrid").datagrid("reload", dgParams);
	}
}

// 清空日期搜索框
function clearSearch() {
	$('#dd').datebox('setValue', '');
}

// 重新刷新数据
function doReload() {
	$("#xdatagrid").datagrid("reload", {});
}

// 增加事件
function doAdd() {
	$('#addForm').form('reset');
	if (typeof (clazzUrl) != "undefined" && typeof (courseUrl) != "undefined") {
		coursesCbg.combogrid({
			url : courseUrl
		});
		clazzsCbg.combogrid({
			url : clazzUrl
		});
	}
	$('#addDlg').dialog('open');
}

// 编辑事件
function doEdit() {
	var row = $("#xdatagrid").datagrid('getSelected');
	if (row) {
		loadDialog(row);
	}
	if (typeof (cbgUrl) != "undefined") {
		clazzCbgUpdate.combogrid({
			url : cbgUrl
		});
		// clazzCbgUpdate.combogrid('setValue', cbgLoadData);
	}
}

// 右键编辑事件
function clickEdit() {
	loadDialog(clickData);
}

// 点击删除事件
function doDelete() {
	var deleteIds = $('.xid');
	var idstr = "";
	$(".xid").each(function() {
		if (this.checked == true) {
			idstr = idstr + $(this).val();
			idstr = idstr + ";";
		}
	});
	var row = $("#xdatagrid").datagrid('getSelected');
	if (row != null) {
		idstr = idstr + row.id;
		doConfirmPost(dgDeleteUrl, {
			id : idstr
		}, dgDeleteMsg);
	} else {
		$.messager.alert('警告', '请先选择');
	}
}

// 右击删除事件
function clickDelete() {
	doConfirmPost(dgDeleteUrl, {
		id : clickData.id
	}, dgDeleteMsg);
}

// Post提交
function doPost(url, params, callback) {
	$.ajax({
		url : url,
		data : params,
		dataType : 'json',
		type : 'post',
		beforeSend : function(json) {
			$.messager.progress({
				title : dgTitle,
				msg : "提交数据中"
			});
		},
		success : function(json) {
			$.messager.progress('close');
			if (!json) {
				$.messager.alert(dgTitle, '未知异常,请联系管理员');
				return;
			}
			if (json.result != "success") {
				$.messager.alert(dgTitle, json.data);
				return;
			} else {
				$('#xdatagrid').datagrid('reload');
				if (callback) {
					callback();
				}
			}
		},
		error : function(xmlHttp) {
			$.messager.progress('close');
			$.messager.alert(dgTitle, '未知异常,请联系管理员');
			document.write(xmlHttp.responseText);
		}
	});
}

// Post提交，提交前会确认信息
function doConfirmPost(url, params, msg, callback) {
	$.messager.confirm(dgTitle, msg, function(r) {
		if (r) {
			doPost(url, params, callback);
		}
	});

}

// Get提交
function doGet(url, params, callback) {
	$.ajax({
		url : url,
		data : params,
		dataType : 'json',
		type : 'get',
		beforeSend : function(json) {
			$.messager.progress({
				title : dgTitle,
				msg : "提交数据中"
			});
		},
		success : function(json) {
			$.messager.progress('close');
			if (json.result != "success") {
				$.messager.alert(dgTitle, json.data);
				return;
			} else {
				callback();
			}
		},
		error : function(xmlHttp) {
			$.messager.progress('close');
			document.write(xmlHttp.responseText);
		}

	});
}
